package cn.edu.zhku.citrusmonitor.baseinfo.citrus.dao;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import cn.edu.zhku.citrusmonitor.domain.Bean;
import cn.edu.zhku.citrusmonitor.domain.TbCitrus;

public interface CitrusDao{
	/**
	 * 添加柑橘信息
	 * @param citrus	
	 * @return
	 * @throws SQLException
	 */
	int insertCitrus(TbCitrus citrus) throws SQLException;
	/**
	 * 删除柑橘信息
	 * @param citrusId
	 * @return
	 * @throws SQLException
	 */
	int deleteCitrus(String citrusId) throws SQLException;
	/**
	 * 修改柑橘信息
	 * @param citrus
	 * @return
	 */
	int updateCitrus(TbCitrus citrus) throws SQLException ;
	
	/**
	 * 根据id查询文件字段的信息
	 * @param citrusId 柑橘主键
	 * @return 文件字段信息
	 */
	String selectFilePathById(String citrusId) throws SQLException ;
	/**
	 * 根据条件分页查询
	 * @param pageSize	每页显示条数
	 * @param currentPage	当前页
	 * @param condition		条件
	 * @return	柑橘信息列表
	 * @throws SQLException
	 */
	List<TbCitrus> selectCitrusList(int pageSize, int currentPage,  Map<String, Object> condition) throws SQLException ;
	/**
	 * 根据条件统计记录数
	 * @param condition
	 * @return
	 * @throws SQLException
	 */
	int countList(Map<String, Object> condition) throws SQLException ;
	/**
	 * 根据主键查询柑橘信息，返回TbCitrus类
	 * @param citrusId
	 * @return
	 */
	TbCitrus selectCitrusById(String citrusId) throws SQLException ;
	/**
	 * 更新柑橘的对应的技术的id
	 * @param citrusId
	 * @param technologyId
	 * @return
	 */
	int updateCitrusInTnlg(String citrusId, String technologyId) throws SQLException ;
	/**
	 * 根据时间排序，查询出前size条数据
	 * @param size
	 * @return
	 * @throws SQLException
	 */
	List<TbCitrus> selectCitrusesLimit(int size) throws SQLException ;
	/**
	 * 分页查询，用于前台
	 * @param pageSize
	 * @param currentPage
	 * @return
	 */
	List<Bean> selectCitrusList(int pageSize, int currentPage) throws SQLException;
	/**
	 * 根据主键查询柑橘信息，返回Bean信息类
	 * @param citrusId
	 * @return
	 */
	Bean getCitrusById(String citrusId) throws SQLException;
	/**
	 * 批量删除
	 * @param params
	 * @return
	 * @throws SQLException
	 */
	int deleteCitrusesByIds(Object [][]params) throws SQLException;
}

